Challenge #64: Catch Me If You Can ~キャッチ・ミー・イフ・ユー・キャン~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の20日目です。
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 - Qiita
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 | シリーズ | Developers.IO
『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』では、Alteryx Communityで公開されているWeekly ChallengeのIntermediate Levelにひたすら1人で挑戦していきます。
今回は変化するデータのフィールドの調整に挑戦します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2018.4.4.54346 英語版
Challenge #64: Catch Me If You Can
お題
今回挑戦するお題はこちら。
「Input」側には2つのデータが用意されています。1つ目のデータは、フィールド名が「CYA」から始まる文字と数字の組み合わせになっています。
2つ目のデータは、「Name」列に1つ目のデータのフィールド名が用意されています。
「Output」側のデータはこちら。「Input」側の2つ目のデータからフィールド名を作成し、1つ目のデータのフィールド名を置き換えています。
なお、このお題はワークフローを実行するたびにデータが変化します。解答をご紹介していく中で表示されるデータが変化しておりますのでご了承ください。
解答の概要
今回作成するワーフクローは以下の通りです。
- 2つ目のデータからフィールド名を作成
- 1つ目のデータのフィールド名を置換し、不要なデータを削除
解答の詳細
Formulaツール(Preparation -> Formula)を追加し、2つ目のデータと接続します。Formulaツールを使用して、フィールド名を準備します。
「Field」列をV_WString型で作成し、以下の式を設定します。
[Category] + " " + "/" + " " + [SubCategory] + " " + "/" + " " + [Description]
「SubCategory」列にNullがある場合、「Basic Variables / / Total Population」などのように、スラッシュに空白が挟まれて出力されます。この部分の修正のため、以下の式を追加します。
Replace([Field], "/ /", "/")
これでフィールド名を準備できました。
Dynamic Renameツール(Developer -> Dynamic Rename)を使用して、1つ目のデータのフィールド名を、Formulaツールで準備したフィールド名に置き換えます。1つ目のデータの出力をDynamic Renameツールの L の入力に、Formulaツールの出力をDynamic Renameツールの R の入力に接続します。
以下の設定をしています。
- Rename Mode: Take Field Name from Right Input Rows
- Old Field Name from Column: Name( L に入力されたデータの「Name」列)
- New Field Name from Column: Field( L に入力されたデータの「Field」列)
結果を確認してみると、1つ目のデータのフィールド名と2つ目のデータの「Name」列で一致するものがある場合はフィールド名が置換されていますが、一致するものがない場合はフィールド名がそのままになっています。
フィールド名が置換されなかったものは不要なデータとなります。Dynamic Selectツール(Developer -> Dynamic Select)の Select via a Formula を使用して、不要な列を削除します。
Formulaツールで用意したフィールド名にはスラッシュが含まれています。フィールド名にスラッシュが含まれる列のみ残します。
式には以下の通り設定しています。
Contains([Name], "/")
結果を確認して完成です。
最後に
今回はWeekly ChallengeのChallenge #64: Catch Me If You Canに挑戦しました。
明日もお楽しみに!
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。